package work2;
/*
*
* 定义一个长度为[16][16]的整型二维数组并输入或指定所有位置的元素值，
* 分别实现二维数组中所有行和所有列中所有元素的累加和并打印。
* 再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。
*
*
* */
public class Test1 {


    public static void main(String arg[]){
        //定义一个二维数组
        int arr[][] = new int[16][16];
        //直接给二维数组赋值
        for (int i = 0; i < 16; i++) {
            for (int i1 = 0; i1 < 16; i1++) {
                arr[i][i1] = i1;
            }
        }
        //循环打印所以元素累加
        int all = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int i1 = 0; i1 < arr[i].length; i1++) {
                all += arr[i][i1];
            }
        }
        System.out.println("数组中所有元素累计为:" + all);

        //要实现左上角到右下角的所有元素和打印相当于第一个数组取第一个第二个数组取第二位 以此类推  从右上角打印到左下角则相反
        // 定义两个下标  为所需累加数字的下标
        int leftToRightIndex = 0; //从左到右是从0开始到15
        int rightToLeftIndex = 15; //从右到左是从15开始到0
        int allLeftToRight = 0,allRightToLeft = 0;

        for (int i = 0; i < arr.length; i++) {
            allLeftToRight += arr[i][leftToRightIndex];
            //每次index +1；
            leftToRightIndex++;

            allRightToLeft += arr[i][rightToLeftIndex];
            //每次index-1
            rightToLeftIndex--;

        }
        System.out.println("数组中从左上角到右下角的所有元素和为:" + allLeftToRight);
        System.out.println("数组中从右上角到左下角的所有元素和为:" + allRightToLeft);
    }

}
